The increasing use of applications with significant data throughput requirements, such as online transaction processing applications, combined with the increasing use of file servers and rich media data servers, has led to an input/output (I/O) intensive application space which demands fast processing of large volumes of data. Such I/O intensive environments can have large, sustained workloads involving a wide range of I/O data transfer sizes as well as periodic burst accesses, depending on the applications involved.
When applications which are executing in parallel demand fast processing, an acceptable level of performance on a per application basis becomes a major customer requirement. Even in systems with resources such as large memory, multiple CPUs and associated resource management utilities, I/O subsystem bottlenecks may exist because the I/O system as a whole may not be configured to run optimally. Furthermore, applications for which I/O operations are critical, such as online transaction processing, currently compete equally for resources with applications for which I/O is non-critical, negatively impacting the critical application's requirements.